grammar Expr;

prog:   stat+ ;

stat:   expr NEWLINE                # printExpr
    |   ID '=' expr NEWLINE         # assign
    |   NEWLINE                     # blank
    ;

expr:   expr ('*'|'/') expr         # MulDiv
    |   expr ('+'|'-') expr         # AddSub
    |   INT                         # int
    |   ID                          # id
    |   '(' expr ')'                # parens
    ;

MUL :   '*' ; // 定义乘法符号
DIV :   '/' ; // 定义除法符号
ADD :   '+' ; // 定义加法符号
SUB :   '-' ; // 定义减法符号

ID  :   [a-zA-Z]+ ;      // 变量名
INT :   [0-9]+ ;         // 整数

NEWLINE:'\r'? '\n' ;     // 换行符
WS  :   [ \t]+ -> skip ; // 跳过空白符
